<?php

require_once 'resource/db.inc.php';
require_once 'resource/crud.inc.php';

function opCreateClient(&$errores, &$exitos) {
    $dni = isset($_POST['dni']) ? filter_var($_POST['dni'], FILTER_SANITIZE_STRING) : '';
    $nombre = isset($_POST['nombre']) ? filter_var($_POST['nombre'], FILTER_SANITIZE_STRING) : '';
    $apellidos = isset($_POST['apellidos']) ? filter_var($_POST['apellidos'], FILTER_SANITIZE_STRING) : '';
    $direccion = isset($_POST['direccion']) ? filter_var($_POST['direccion'], FILTER_SANITIZE_STRING) : '';
    $diaNac = isset($_POST['diaNac']) ? filter_var($_POST['diaNac'], FILTER_SANITIZE_STRING) : '';
    $mesNac = isset($_POST['mesNac']) ? filter_var($_POST['mesNac'], FILTER_SANITIZE_STRING) : '';
    $anyoNac = isset($_POST['anyoNac']) ? filter_var($_POST['anyoNac'], FILTER_SANITIZE_STRING) : '';
    $telefono = isset($_POST['telefono']) ? filter_var($_POST['telefono'], FILTER_SANITIZE_NUMBER_INT) : '';
    $email = isset($_POST['email']) ? filter_var($_POST['email'], FILTER_SANITIZE_EMAIL) : '';
    $diaCad = isset($_POST['diaCad']) ? filter_var($_POST['diaCad'], FILTER_SANITIZE_STRING) : '';
    $mesCad = isset($_POST['mesCad']) ? filter_var($_POST['mesCad'], FILTER_SANITIZE_STRING) : '';
    $anyoCad = isset($_POST['anyoCad']) ? filter_var($_POST['anyoCad'], FILTER_SANITIZE_STRING) : '';
    $cuota = isset($_POST['radioCuota']) ? filter_var($_POST['radioCuota'], FILTER_SANITIZE_NUMBER_INT) : '';
    if (empty($dni) || !$dni) {
        $errores[] = "No se ha proporcionado correctamente el DNI del cliente";
    }
    if (empty($nombre) || !$nombre) {
        $errores[] = "No se ha proporcionado correctamente el nombre del cliente";
    }
    if (empty($apellidos) || !$apellidos) {
        $errores[] = "No se han proporcionado correctamente los apellidos del cliente";
    }
    if (empty($direccion) || !$direccion) {
        $errores[] = "No se ha proporcionado correctamente la direcci&oacute;n del cliente";
    }
    if ((empty($diaNac) || !$diaNac) || (empty($mesNac) || !$mesNac) || (empty($anyoNac) || !$anyoNac)) {
        $errores[] = "No se ha proporcionado correctamente la fecha de nacimiento del cliente";
    } else {
        $fecha_nacimiento = $diaNac . "/" . $mesNac . "/" . $anyoNac;
    }
    if (empty($telefono) || !$telefono) {
        $errores[] = "No se ha proporcionado correctamente el tel&eacute;fono del cliente";
    }
    if (!$email) {
        $errores[] = "No se ha proporcionado correctamente el email del cliente";
    }
    if (empty($cuota) || !$cuota) {
        $errores[] = "No se ha proporcionado correctamente el estado del cliente";
    } else {
        $datosCuota = getCuota($cuota, $_SESSION['gim_id']);
        $duracion = $datosCuota['cuota_duracion'];
        $precio = $datosCuota['cuota_precio'];
        $dia = date('d') + $duracion;
        $mes = date('m');
        $anyo = date('Y');
        while ($dia > 31) {
            $dia = $dia - 31;
            $mes = $mes + 1;
            if ($mes > 12) {
                $mes = $mes - 12;
                $anyo = $anyo + 1;
            }
        }
        $fecha_caducidad = $dia . "/" . $mes . "/" . $anyo;
    }
    if (empty($errores)) {
        addMovimiento($_SESSION['gim_id'], "Alta cliente: $dni", date("d/m/Y"), $precio);
        addCliente($dni, $_SESSION['gim_id'], $nombre, $apellidos, $direccion, $fecha_nacimiento, $telefono, $email, $fecha_caducidad, '1');
        $exitos[] = "Cliente dado de alta satisfactoriamente";
    }
}

function opDeleteClient(&$errores, &$exitos) {
    $cliente_dni = isset($_GET['cliente_dni']) ? filter_var($_GET['cliente_dni'], FILTER_SANITIZE_STRING) : '';

    if (empty($cliente_dni) || !$cliente_dni) {
        $errores[] = "No se ha proporcionado correctamente el DNI del cliente";
    }
    if (empty($errores)) {
        deleteCliente($cliente_dni, $_SESSION['gim_id']);
        $exitos[] = "Cliente dado de baja satisfactoriamente";
    }
}

function opModifyClient(&$errores, &$exitos) {

    $dni = isset($_GET['cliente_dni']) ? filter_var($_GET['cliente_dni'], FILTER_SANITIZE_STRING) : '';
    $nombre = isset($_POST['nombre']) ? filter_var($_POST['nombre'], FILTER_SANITIZE_STRING) : '';
    $apellidos = isset($_POST['apellidos']) ? filter_var($_POST['apellidos'], FILTER_SANITIZE_STRING) : '';
    $direccion = isset($_POST['direccion']) ? filter_var($_POST['direccion'], FILTER_SANITIZE_STRING) : '';
    $fecha_nacimiento = isset($_POST['fecha_nacimiento']) ? filter_var($_POST['fecha_nacimiento'], FILTER_SANITIZE_STRING) : '';
    $telefono = isset($_POST['telefono']) ? filter_var($_POST['telefono'], FILTER_SANITIZE_NUMBER_INT) : '';
    $email = isset($_POST['email']) ? filter_var($_POST['email'], FILTER_SANITIZE_EMAIL) : '';
    $fecha_caducidad = isset($_POST['fecha_caducidad']) ? filter_var($_POST['fecha_caducidad'], FILTER_SANITIZE_STRING) : '';
    $tabFecha = split("/", $fecha_caducidad);
    $diaCad = $tabFecha[0];
    $mesCad = $tabFecha[1];
    $anyoCad = $tabFecha[2];
    $estado = isset($_POST['estado']) ? filter_var($_POST['estado'], FILTER_SANITIZE_NUMBER_INT) : '';
    $cuota = isset($_POST['radioCuota']) ? filter_var($_POST['radioCuota'], FILTER_SANITIZE_NUMBER_INT) : '';
    if (empty($dni) || !$dni) {
        $errores[] = "No se ha proporcionado correctamente el DNI del cliente";
    }
    if (empty($nombre) || !$nombre) {
        $errores[] = "No se ha proporcionado correctamente el nombre del cliente";
    }
    if (empty($apellidos) || !$apellidos) {
        $errores[] = "No se han proporcionado correctamente los apellidos del cliente";
    }
    if (empty($direccion) || !$direccion) {
        $errores[] = "No se ha proporcionado correctamente la direcci&oacute;n del cliente";
    }
    if (empty($telefono) || !$telefono) {
        $errores[] = "No se ha proporcionado correctamente el tel&eacute;fono del cliente";
    }
    if (!$email) {
        $errores[] = "No se ha proporcionado correctamente el email del cliente";
    }
    if (empty($estado) || !$estado) {
        $errores[] = "No se ha proporcionado correctamente el estado del cliente";
    }
    if (!empty($cuota)) {
        $datosCuota = getCuota($cuota, $_SESSION['gim_id']);
        $duracion = $datosCuota['cuota_duracion'];
        $diaCad = $diaCad + $duracion;
        while ($diaCad > 31) {
            $diaCad = $diaCad - 31;
            $mesCad = $mesCad + 1;
            if ($mesCad > 12) {
                $mesCad = $mesCad - 12;
                $anyoCad = $anyoCad + 1;
            }
        }
        $fecha_caducidad = $diaCad . "/" . $mesCad . "/" . $anyoCad;
    }
    if (empty($errores)) {
        updateStatus($dni, $estado, $fecha_caducidad);
        updateCliente($dni, $_SESSION['gim_id'], $nombre, $apellidos, $direccion, $fecha_nacimiento, $telefono, $email, $fecha_caducidad, $estado);
        $exitos[] = "Cliente actualizado satisfactoriamente";
    }
}

function opListClients(&$nreg, $regsxpag, &$pagina) {
    
    $pagina = (isset($_GET['page']) && ctype_digit($_GET['page']) && $_GET['page'] > 0 ) ? $_GET['page'] : 1;
    $registro = ($pagina > 0) ? ($pagina - 1) * $regsxpag : 0;
    
    if($_SESSION['user_nivel'] == 1){
    $nreg = getNumClientes();
    $clientes = getClientesLimit($registro, $regsxpag);
    }elseif($_SESSION['user_nivel'] == 2){
    $nreg = getNumClientesManager($_SESSION['gim_id']);
    $clientes = getClientesManagerLimit($_SESSION['gim_id'], $registro, $regsxpag);
    }
    return $clientes;
}
?>

